﻿using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using System.Web.DynamicData;
using System.Data.SqlClient;

namespace sistemaAcademicoFinanceiroEscolas.salariosEdit
{
    public partial class Edit : System.Web.UI.Page
    {
        protected MetaTable table;

        protected void Page_Init(object sender, EventArgs e)
        {
            DynamicDataManager1.RegisterControl(DetailsView1);
            Session["jadefiniufoco"] = "Nao";
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            table = DetailsDataSource.GetTable();
            Title = table.DisplayName;

            if (!Page.IsPostBack)
            {
                System.Data.SqlClient.SqlConnection sqld = new System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqld.Open();

                string sqlMax = "SELECT * FROM salario where codigoSalarioCargo = " + Request["codigoSalarioCargo"].ToString();

                System.Data.SqlClient.SqlCommand cmdPegar = new System.Data.SqlClient.SqlCommand(sqlMax, sqld);
                System.Data.SqlClient.SqlDataReader drPegar = cmdPegar.ExecuteReader();
                drPegar.Read();

                Session["codigoAnoLetivoInicial"] = drPegar["codigoAnoLetivoInicial"].ToString();
                Session["codigoAnoLetivoFinal"] = drPegar["codigoAnoLetivoFinal"].ToString();
                Session["codigoCargo"] = drPegar["codigoCargo"].ToString();
                Session["Valor"] = drPegar["Valor"].ToString();
                Session["codigoMesInicial"] = drPegar["codigoMesInicial"].ToString();
                Session["codigoMesFinal"] = drPegar["codigoMesFinal"].ToString();
                Session["QuantidadeHorasAulas"] = drPegar["QuantidadeHorasAulas"].ToString();



                cmdPegar.Dispose();
                drPegar.Close();

                sqld.Close();

            }
        }

        protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e)
        {
            if (e.Exception == null || e.ExceptionHandled)
            {
                //DIVISÃO------------------------------------------>>

                System.Data.SqlClient.SqlConnection sqlAnoPeri = new System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlAnoPeri.Open();
                System.Data.SqlClient.SqlConnection sqlAnoPeri2 = new System.Data.SqlClient.SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlAnoPeri2.Open();

                string sqlMax = "SELECT * FROM salario where codigoSalarioCargo = " + Request["codigoSalarioCargo"].ToString();

                System.Data.SqlClient.SqlCommand cmdAno = new System.Data.SqlClient.SqlCommand(sqlMax, sqlAnoPeri);
                System.Data.SqlClient.SqlDataReader drAno = cmdAno.ExecuteReader();
                drAno.Read();

                int mesFinal = Convert.ToInt32(drAno["codigoMesFinal"].ToString());
                int mesInicial = Convert.ToInt32(drAno["codigoMesInicial"].ToString());
                string codigoCargo = drAno["codigoCargo"].ToString();
                string valor = drAno["Valor"].ToString();
                string quantidadeHorasAulas = drAno["QuantidadeHorasAulas"].ToString();
                int AnoF = Convert.ToInt32(drAno["codigoAnoLetivoFinal"].ToString());
                int AnoI = Convert.ToInt32(drAno["codigoAnoLetivoInicial"].ToString());

                if (AnoI > AnoF)
                {
                    //Opa erro !

                    string sqlUpdateLan = "UPDATE salario SET codigoMesInicial=" + Session["codigoMesInicial"] + ", ";
                    sqlUpdateLan += "codigoMesFinal=" + Session["codigoMesFinal"] + ", ";
                    sqlUpdateLan += "codigoAnoLetivoInicial=" + Session["codigoAnoLetivoInicial"] + ", ";
                    sqlUpdateLan += "codigoAnoLetivoFinal=" + Session["codigoAnoLetivoFinal"] + ", ";
                    sqlUpdateLan += "codigoCargo=" + Session["codigoCargo"] + ", valor='" + Session["valor"] + "', ";
                    sqlUpdateLan += "QuantidadeHorasAulas='" + Session["QuantidadeHorasAulas"] + "' ";
                    sqlUpdateLan += "where codigoSalarioCargo = " + Request["codigoSalarioCargo"].ToString();

                    SqlCommand UpDateDetalheAno = new SqlCommand(sqlUpdateLan, sqlAnoPeri2);
                    UpDateDetalheAno.ExecuteNonQuery();
                    UpDateDetalheAno.Dispose();

                    string literalcc = "<script language=JavaScript>finalizar();</script>";
                    pnlJS.Controls.Add(new LiteralControl(literalcc));
                    Response.Redirect("Edit.aspx?codigoSalarioCargo=" + Request["codigoSalarioCargo"].ToString() + "&informacao=sim");

                }

                if (AnoF == AnoI && mesFinal < mesInicial)
                {
                    //Opa erro !
                    string sqlUpdateLan = "UPDATE salario SET codigoMesInicial=" + Session["codigoMesInicial"] + ", ";
                    sqlUpdateLan += "codigoMesFinal=" + Session["codigoMesFinal"] + ", ";
                    sqlUpdateLan += "codigoAnoLetivoInicial=" + Session["codigoAnoLetivoInicial"] + ", ";
                    sqlUpdateLan += "codigoAnoLetivoFinal=" + Session["codigoAnoLetivoFinal"] + ", ";
                    sqlUpdateLan += "codigoCargo=" + Session["codigoCargo"] + ", valor='" + Session["valor"] + "', ";
                    sqlUpdateLan += "QuantidadeHorasAulas='" + Session["QuantidadeHorasAulas"] + "' ";
                    sqlUpdateLan += "where codigoSalarioCargo = " + Request["codigoSalarioCargo"].ToString();

                    SqlCommand UpDateDetalheAno = new SqlCommand(sqlUpdateLan, sqlAnoPeri2);
                    UpDateDetalheAno.ExecuteNonQuery();
                    UpDateDetalheAno.Dispose();

                    string literalcc = "<script language=JavaScript>finalizar();</script>";
                    pnlJS.Controls.Add(new LiteralControl(literalcc));
                    Response.Redirect("Edit.aspx?codigoSalarioCargo=" + Request["codigoSalarioCargo"].ToString() + "&informacao=erroData");
                    //mensagem java script

                }

                //Fim validação periodo data

                if (codigoCargo == "7")
                {
                    if (quantidadeHorasAulas == "" || quantidadeHorasAulas == "0")
                    {
                        //Opa erro !


                        string sqlUpdateLan = "UPDATE salario SET codigoMesInicial=" + Session["codigoMesInicial"] + ", ";
                        sqlUpdateLan += "codigoMesFinal=" + Session["codigoMesFinal"] + ", ";
                        sqlUpdateLan += "codigoAnoLetivoInicial=" + Session["codigoAnoLetivoInicial"] + ", ";
                        sqlUpdateLan += "codigoAnoLetivoFinal=" + Session["codigoAnoLetivoFinal"] + ", ";
                        sqlUpdateLan += "codigoCargo=" + Session["codigoCargo"] + ", valor='" + Session["valor"] + "', ";
                        sqlUpdateLan += "QuantidadeHorasAulas='" + Session["QuantidadeHorasAulas"] + "' ";
                        sqlUpdateLan += "where codigoSalarioCargo = " + Request["codigoSalarioCargo"].ToString();

                        SqlCommand UpDateDetalheAno = new SqlCommand(sqlUpdateLan, sqlAnoPeri2);
                        UpDateDetalheAno.ExecuteNonQuery();
                        UpDateDetalheAno.Dispose();

                        string literalcc = "<script language=JavaScript>finalizar();</script>";
                        pnlJS.Controls.Add(new LiteralControl(literalcc));
                        Response.Redirect("Edit.aspx?codigoSalarioCargo=" + Request["codigoSalarioCargo"].ToString() + "&informacao=erroCargo");
                        //mensagem java script

                    }
                }
                else
                {
                    if (quantidadeHorasAulas != "")
                    {
                        string sqlUpdateLan = "UPDATE salario SET QuantidadeHorasAulas= '' ";
                        sqlUpdateLan += "where codigoSalarioCargo = " + Request["codigoSalarioCargo"].ToString();

                        SqlCommand UpDateDetalheAno = new SqlCommand(sqlUpdateLan, sqlAnoPeri2);
                        UpDateDetalheAno.ExecuteNonQuery();
                        UpDateDetalheAno.Dispose();

                        string literalcc = "<script language=JavaScript>finalizar();</script>";
                        pnlJS.Controls.Add(new LiteralControl(literalcc));
                        Response.Redirect("Edit.aspx?codigoSalarioCargo=" + Request["codigoSalarioCargo"].ToString() + "&informacao=erroQuantidade");
                    }
                }

                cmdAno.Dispose();
                drAno.Close();

                sqlAnoPeri.Close();
                sqlAnoPeri2.Close();

                //Fim da validação Salário Funcionario
                Response.Redirect(table.ListActionPath);
            }
        }

        protected void DetailsView1_ItemCommand(object sender, DetailsViewCommandEventArgs e)
        {
            if (e.CommandName == DataControlCommands.CancelCommandName)
            {
                Response.Redirect(table.ListActionPath);
            }
        }
    }
}









